1-1 SPEECH Man's ability to articulate sounds for the purpose of communicating ideas distinguishes him from the rest of the animal kingdom. This ability, which we now take so much for granted, was once thought to have been conferred upon man by the gods themselves. In the Book of Genesis, for example, Adam is given the power of speech by the Lord in order to name the animals, thereby demonstrating his likeness to God. Given such history, it is not surprising that man perceived the power of speech as an integral part of his quest for divinity. As man evolved and had more needs and desires to articulate, a complex system of speech organs was developed in order to provide a more varied and sophisticated means of expression. The human voice is now capable of a wide range of sounds from grunts to operatic cadences. It was only natural that, as man's brainchild, the computer became more complex and imitative of human abilities, it would reach a stage of evolution which would require the ability to communicate in a more human fashion. MOCKINGBOARD gives your computer the power of speech. Like a human, it will read text aloud pronouncing each word according to a series of rules. These rules are the basis for Sweet Micro Systems' method of converting text into a code MOCKINGBOARD can understand. MOCKINGBOARD will allow you to introduce expression into the voice. Expression is important to the intelligibility and the meaning of the words spoken. The Sweet text to speech program automatically sets the speech parameter s for general use and allows you to introduce stress and intonation to text by using special markers. You may change these parameters to create interesting voices. There are many exceptions to standard pronunciation rules. Names are especially difficult and are frequently mispronounced. Remember how your teacher stumbled through her class list on the first day of school? How disappointed you must have been if your name was incorrectly announced to the class! If MOCKINGBOARD has trouble with your name or names of family members and friends, you can easily correct it and we'll show you how. We know the name, Robert, is mispronounced. We will step through the corrections necessary, and in the process tell you about MOCKINGBOARD's features, capabilities and our method of converting text into speech. 1-2 A special section explains how to enhance your programs with speech you create using the Rule Editor or using the text to speech program right in a program of your own creation. ADD INFLECTION WITH THE DIRECTOR'S CUES MOCKINGBOARD is all set to start talking. With a little assistance, MOCKINGBOARD will express itself with the use of inflection or pitch patterns, and show emotion. Limited use of inflection is automatically performed by the program. For example, it recognizes punctuation marks and responds accordingly. You will be able to employ inflection more creativity as you compose your sentences. Boot your demonstration disk and select A for speech and then select the Rule Editor from the Speech menu. You will be asked to SELECT CHARACTER TABLE TO EDIT. Type A and the A rule table will appear. Type T for Test Mode at ENTER COMMAND. Now we are ready to proceed. The cursor, next to the question mark, is ready for you to type in a word. After you type the word, press the return key. The word will be spoken at an average speed, in an average voice with minimal variation or emotional coloring. These speech characteristics have been preset to normally used values. If you would like MOCKINGBOARD to be more expressive, you may take advantage of its interpretive talents. MOCKINGBOARD's theatrical abilities are not to be underestimated. Fine actors, regardless of their talent, require good directors. MOCKINGBOARD may be directed by inserting special markers into the text as it is typed in. These markers will tell MOCKINGBOARD when to show emotion, It already recognizes normal punctuation marks, such as commas, periods and question marks, and will respond with an appropriate pause, or raise or lower its voice. You may also place emphasis on a particular word or syllable, by inserting slash key stress markers (/) as cues to indicate when MOCKINGBOARD should play up a scene. From the Test Mode, enter the word, "Hello," at the prompt. Think, like a good director, of the different ways that HELLO can be interpreted. When an actor speaks, he conveys emotion by changing the pitch, volume, and rate at which he speaks. Press return and listen. How could you make this word more expressive? Try typing in the following examples. Each time you wish to clear an entry, type N for new entry. Should you wish MOCKINGBOARD to repeat itself, type R for repeat. The comments to the right explain 1-3 what effect the markers have on the word. (Note: You do not have to type the question mark, it will appear automatically. ?HELLO ....would have no variation in stress ?/HE/LLO ....would stress HE ?HELL/O/ ....would stress O ?HELLO? ....would cause a rise in pitch at the end ?HELLO. ....would cause a drop in pitch at the end Other combinations of punctuation marks and stress marks are also possible. Stress markers generally work in pairs, but you may insert any number of them into a text. The number of stress markers and their position will determine how each word or syllable will be spoken. Be experimental! Try typing the following examples, and listen to MOCKINGBOARD perform. INFLECTION DIAGRAM I: DECLARATIVE SENTENCE Mary had a /li/ttle lamb. MOCKINGBOARD has just described Mary's pet. Diagram I shows the inflection pattern, or the rate of change of pitch, for a basic declarative sentence, which emphasizes the lamb's size. The English language has several levels of pitch. Our text to speech method approximates these levels by using four main pitch levels. These levels are designated by the digits which appear on the left side of the diagram. "Mary had a little lamb" is spoken at pitch level two until the first stress marker is encountered. At the first stress marker, the pitch rises from level 2 to level 3. It will remain at level three until another marker is encountered. At the second stress marker, the pitch will glide up or down depending on the final punctuation. A period at the end of a sentence, as in this example, indicates a drop in pitch. If no final punctuation mark exists, then a period is assumed. 1-4 lf we want MOCKINGBOARD to show more feeling, we must give it additional direction. Try typing, "/Mar/y had a/li/ttle lamb." INFLECTION DIAGRAM 2 /Mar/y had a /li/ttle lamb. This diagram shows the change of pitch for a declarative sentence with more than two stress markers. In this example, the pitch starts at level 3 and rises to level 4 upon reaching the first marker. The second marker signals a drop in pitch to level 2. Upon reaching the next pair of markers, the pitch level will again rise and then fall until the period is encountered. MOCKINGBOARD's recitation of "Mary had a little lamb" deserves an ovation. The dual stress pattern was interpreted with greater emphasis on the first pair of markers than on the second, Such a stress pattern, in which the initial stress is more emphatic than stresses which follow, is typical of the English language, Perhaps you would like MOCKINGBOARD to ask some questions about Mary?. Let's change some of the cues and try some interrogatives. Type "Mary had a/li/ttle lamb?" INFLECTION DIAGRAM 3, INTERROGATORY STATEMENT Mary had a /li/ttle lamb? If you compare this recitation with INFLECTION DIAGRAM I, you will see that the performance differs only at the end where the different cue has caused a rise in pitch instead of a drop. The difference in pitch may appear to be insignificant, but we must remember that pitch assists us in interpreting a speaker's intent and helps us to recognize when he is stating or questioning. We are now doubting the lamb's small size. 1-5 The director's cues are actually much more sophisticated than they may appear. The stress markers not only cause MOCKINGBOARD to change its pitch, but also its volume, the number of words spoken per second and finally, the voice itself. When a syllable is stressed, it generally becomes louder, the speech rate slows to make the syllable longer, and the voice quality changes slightly. You can achieve all of these theatrical effects simply by typing in normal punctuation and experimenting with the stress markers. ADD TEXTURE TO THE VOICE As Director, you have only begun to utilize MOCKINGBOARD's many talents. With your assistance MOCKINGBOARD can change its voice. MOCKINGBOARD's voice is described by four parameters: amplitude, inflection, filter frequency and speech rate. These parameters have been preset to values which will appear in the lower half of the Test Mode screen. CURRENT PARAMETERS 11 -AMPLITUDE 232 -INFLECTION B -FILTER FREQUENCY 8 -SPEECH RATE Should you wish to change any of these parameters, the commands below will allow you to do so. The mark is defined as the control key (or CTRL). COMMAND RANGE COMMAND RANGE ^A AMPLITUDE 0-11 ^F FILTER FREQUENCY 0-253 ^I INFLECTION 0-25 ^R SPEECH RATE 0-13 NOTE: If you typed a word or phrase to be spoken and have not cleared it with an N for new entry, you will not be permitted to make any changes. The CURRENT PARAMETERS display is replaced by an ENTER COMMAND: prompt which will only accept R for repeat, N for new entry or Control-S for save the word. Type N for new entry and you will be returned to an entry mode to make changes. 1-6 SOFT TO LOUD VOICE, ^A, AMPLITUDE MOCKINGBOARD can speak in a variety of voices. It can speak in a barely audible whisper, or for stage purposes, in a deep sonorous voice. Volume or amplitude, may be adjusted with the ^A command. Type Control-A. The program will respond with a prompt. ENTER NEW AMPLITUDE SETTING You may enter any setting from 0 to 11. The normal setting is set at 11. Try 4 and press return. The new setting will be reflected in the CURRENT PARAMETERS Table. CURRENT PARAMETERS 4 -AMPLITUDE 232 -FILTER FREQUENCY 8 -INFLECTION 8 -SPEECH RATE Now type in "Hello." If MOCKINGBOARD spoke too softly, type N for new entry, and A for amplitude. This time, try typing in 8, press return, and check for the new value in the CURRENT PARAMETERS Table. Direct MOCKINGBOARD to speak again. When you are satisfied that MOCKINGBOARD is speaking at a proper volume, you may turn your attention elsewhere. LOW TO HIGH VOICE, ^I, INFLECTION Different roles or personalities require different voices. A child speaks in a high pitched voice, an adult male in a low pitch. With your direction, MOCKINGBOARD can utilize its talents and do impersonations. Suppose that MOCKINGBOARD was asked to play an evil villain in a theatrical production. Its normal voice won't do at all. In order to change pitch or inflection, type Control-I in the Test Mode. A prompt will appear to assist you. ENTER NEW INFLECTION SET NUMBER You may enter any value from 0 to 25, When you change the inflection set, you are moving the four main pitch levels up or down on a musical scale. An evil character requires a very low voice, so let's type in 0, and press return. The new value will appear in the CURRENT PARAMETERS Table. Now type "/WEL/COME TO MY DOMAIN," press return, and meet your villain. 1-7 MOCKINGBOARD's talents are far too great to play only evil character types. Let's create another role. Type N for new entry, I for inflection and set the inflection set to 25. Press return. MOCKINGBOARD will now speak like a little child in a very high pitched voice. Type "M/OMM/Y?" and press return. MOCKINGBOARD's versatility will amaze you. SLOW TO FAST VOICE, ^R, SPEECH RATE Some roles will require that MOCKINGBOARD speak very quickly. The speech rate may be adjusted on a scale from 0 to 13, from excruciatingly slow to incredibly fast. Type Control-R for the prompt: ENTER NEW SPEECH RATE: Set the speech rate to 1 and press return. Also, type ^I for inflection and change it back to 8. MOCKINGBOARD's new line is, "I am s/o/tired," and it is spoken as though MOCKINGBOARD will be asleep before it reaches the word "tired." (Don't forget to type the stress markers around the O.) On the other hand, type in a speech rate of 11, and press return. Now type "Peter Piper picked a peck of pickled peppers," and press return. MOCKINGBOARD never stutters. ALTER THE VOICE QUALITY, ^F, FILTER FREQUENCY The last parameter you may adjust is the Filter Frequency or voice quality. One of MOCKINGBOARD's greatest virtues is its ability to change its voice, if you type Control-F in the Test Mode, the prompt will read: ENTER NEW FILTER FREQUENCY NUMBER: By typing in any number from 0 to 253, and pressing return, you may direct MOCKINGBOARD to speak in a different voice. Type in 242 and press return. Change the speech rate back to 8. Type "TAKE ME TO YOUR LEADER." MOCKINGBOARD could play a creature from outer space. Let's try another. Type N and Control-F. Suppose we type 220 and press return. MOCKINGBOARD's voice acquires a previously undiscovered dignity. If MOCKINGBOARD now says, "YOU ARE A/GREAT/ DIRECTOR," we can believe it. 1-8 PULLING IT ALL TOGETHER MOCKINGBOARD's abilities may be further explored by changing more than one parameter at a time. Try changing Filter Frequency and Inflection together. Any combination of the four parameters is possible, so you may create an unlimited number of voices. Let's go back to the evil villain and make his voice more convincing. What the voice lacked earlier was the appropriate filter frequency. Change the inflection to 0 and the filter frequency to 220, giving the speech a lower and deeper voice quality. Also slow the speech rate to 6. Now, type "/WELCOME/ TO MY DOMAIN. HA, HA, HA." The child's whimper was high in pitch, but the voice quality was too strained. Change the voice quality to produce a softer, more innocent cry. Type 20 for inflection, 240 for filter frequency and 2 for speech rate. You may also lower the amplitude, if you wish. Type "/MOMMY? /I/ LOVE YOU." SAVE THE WORDS CREATED, ^S, SAVE As you develop words or phrases using the above methods, you may wish to save them. While the words and speech parameters are still on the screen, type CONTROL-S for save. DO NOT TYPE N FOR NEW ENTRY BEFORE YOU TYPE CONTROL-S. This will erase your words. Remember that after you enter a word, the only acceptable commands are N for new entry, R for repeat and S for save. When you type S you will be asked to enter a filename. ENTER FILENANE: You may enter any filename up to eight characters in length beginning with a letter A-Z. The following message will appear while the new file is written to your disk. PLEASE WAIT &endash; SAVING COMPOSITE FILE The words you save may be used for current or future programs you may wish to enhance with speech. Please refer to the section on programming information for samples and an explanation of how you incorporate speech into your work. We have only whetted your appetite. With all the features presented in the previous pages, you may create whatever creature or character your imagination dictates. MOCKINGBOARD's talents are constrained only by your imagination. 1-9 THE RULE TABLE Sweet Micro Systems' method of converting text to speech is rule based. Words are broken into sound patterns, which are represented by rules. MOCKINGBOARD matches these rules to characters in words or phrases. When a match is made, MOCKINGBOARD speaks. The quality of rules developed in each character table will determine the accuracy of the resulting speech. Our language presents a formidable challenge in developing a comprehensive rule table. The Sweet table should be considered a base rule table, which may be personalized to suit your particular application. Sweet Micro Systems has made an effort to free you from a predetermined vocabulary and pronunciation, by including a utility called the Rule Editor. The Rule Editor will allow you to alter the Sweet table. New rules may be added, existing rules may be edited or redefined, and nonessential rules may be deleted from the tables. Personalize the Sweet table and let MOCKINGBOARD tell you what you want to hear. A WORD ABOUT PHONEMES MOCKINGBOARD produces speech using a building block method of combining basic sound units called phonemes. In order to teach MOCKINGBOARD to speak intelligibly, we must train our ears to hear individual phonemes in our own speech. MOCKINGBOARD can produce 64 speech sounds in all, more than enough to reproduce any speech you care to hear. Phonemes may be divided into two distinct categories, consonants and vowels. A list of MOCKINGBOARD's phonemes, codes, and a key to their pronunciation are provided in Appendix A, pages A- 1 and A-2. The chart is divided into two tables, one for vowels and the other for consonants. The phonemes are listed in the first column of each table. Each phoneme has four possible codes, which allow the user to select different durations for each sound. By referring to the examples and experimenting with phoneme length, anyone can produce highly intelligible speech. Depending on where you live, your pronunciation of certain words may vary from MOCKINGBOARD's pronunciation. You will find that some words pronounced by MOCKINGBOARD will conflict with what you would normally expect to hear. Don't hesitate to change the pronunciation of any word you wish. MOCKINGBOARD has a great capacity to learn. 1-10 Boot the demo disk and select A for speech and then select Text to Speech, Type your name following the question mark and press return. How did MOCKINGBOARD do? If MOCKINGBOARD pronounced your name correctly great! If not, let's correct the rule table so MOCKINGBOARD will always get it right. Type QUIT to exit the Text to Speech mode and select the Rule Editor. The Rule Table has been designed to generate correct pronunciation for a majority of words. It operates using a text to speech method which allows the computer to analyze text, much in the way a person talks. Should the computer not be informed about a particular rule for pronunciation it will, like a human, make mistakes. Errors will occur because our alphabet is not an accurate representation of our phonemic system. There is not a one-to-one relationship between an alphabet letter and a particular phoneme. If you think back to your grade school days, you will remember the difficulties first graders have with the rules for silent e, the e which is not pronounced but signals a change in the preceding vowel. HOW TO MAKE CHANGES TO THE RULE TABLE ^Z, SELECT When the Rule Editor is ready, you will see the following prompt at the top of the screen. SELECT CHARACTER TABLE TO EDIT The Rule Table consists of all alphabet letters, all digits and their upper case symbols, and all punctuation marks. In order to demonstrate how to correct the Rule Table, we have selected the name, "Robert," which we know is mispronounced. Type R for the R character table, The R table will appear on the screen. It should look like Figure 1&endash;1. The first two lines tell you where you are in the rule table and the present status. The number of rules (B), address (C), and bytes (D) will constantly change as you edit the table. Ten rules will appear on the screen at a time. If the character table contains more than ten rules, press the space bar to advance to the next ten. When you reach the end of the table, press the space bar to return to the first ten rules. 1-11 [A] RULE TABLE &endash; R NUMBER OF RULES - 16 [B] [C] ADDRESS &endash; 34494 LENGTH - 160 BYTES [D] 1. !(R)! =OESC 2. !(READY)! = I D4A4A2501 3. !(READ) = ID414125 [E] 4. !(REC)+ = ID0130 5 !(REC) = ID0A29 6 !(RE)^ # = ID01 7 (RE)D = ID0A 8 (RHY)TH = 1D07 9 (RH) = ID 10 (RINE)! = I D0138 [F] ENTER COMMAND: Figure 1 - 1 Screen Display of a Character Rule Table KEY TO THE RULE TABLE [A] Indicates which character table you are viewing. [B] Indicates the total number of rules contained in this table [C] Indicates the starting address in memory where this table can be found [D] Indicates the total length (in bytes) of this table [E] The first ten rules [F] Type one of the editor commands in Table I &endash; I KEY FUNCTION KEY FUNCTION ^Z Select new character table U Update Main Rule Table E Edit an entry ^S Save Rule Table to disk I Insert a new rule ^L Load Rule Table D Delete an entry ^P Print Character Table T Test mode ^Q Quit or exit program ^X Help menu SPACE Advance to next page of current Character Table Table 1- 1 List of Rule Editor Commands 1-12 LET'S HEAR IT The Rule Editor has a test mode which allows you to evaluate MOCKINGBOARD's pronunciation.of a word or phrase. You will be able to access this mode from any character table, and once in this mode, you may type any word or phrase. T, TEST MODE Type T for the Test Node and a screen similar to that of Figure I -2 will appear. The Test Node will allow you to enter 239 characters or about six and a half lines of characters at the question mark prompt. A beep will tell you that you have reached the limit. Type the letter U until you hear a beep. Press return and listen to the results. The sequence of two digit numbers at the lower half of the screen are the phoneme codes selected from the rule table by the text to speech conversion program. When you typed the return, the U's were converted to code using the rule(s) matching this character string. TEXT TO SPEECH TEST MODE ? CURRENT PARAMETERS 11 -AMPLITUDE 232 -INFLECTIGN 8 -FILTER FREQUENCY 8 -SPEECH RATE Figure 1-2 Test Mode Screen Display KEY FUNCTION KEY FUNCTION R Speak again ^A Set amplitude N New entry ^L Set inflection ^S Save word or phrase ^F Set Alter frequency ^Z Return to Editor ^R Set speech rate level ^X Help menu SPACE Advance to next phoneme page Table I -2 Test Mode List of Commands 1-13 LOCATE THE SOURCE OF THE PROBLEM Type N, to clear the input area for a new entry. Type Robert next to the question mark prompt and press return. It sounds close, but not quite right. The sequence of two digit number s at the bottom half of the screen represents the phoneme codes selected for Robert. If you compare each of these phoneme codes with those of the Phoneme List in Appendix A, page A- I and 2, you will find that this name is pronounced as /ROWBFRT/ and not as /RAHBERT/, which is correct. ID 11 A3 64 SC 68 C0 / R O W B ER T PAUSE / In order to change the /OW/ sound to an /AH/ sound we must first determine which rule caused the error. Let us return to the rule table. Type N to clear for a new entry. Type Control-Z to return to the table from which you entered the Test Mode. Rather than go directly to the O rule table, we must first search the R rule table. The rules in the R table always define how the letter R will be pronounced, but the next character(s) in sequence may also be included in the R rule. It is possible that a rule which exists for (RO) caused the error. HOW TO READ A RULE Each rule in the table consists of three main parts, the rule definition on the left, the equals sign, and the phoneme codes on the right. The first rule of the R table states that R [ 1 ], which is preceded and also followed by a nonalphabetic character [2], is to be pronounced [3] as the composite sound of /AH-ER/, which is equal to the code OE5C [4], [1] 1 !(R)! =OESC [2] [3] [4] [I] Parentheses serve as boundary markers. They act to identify the particular character or characters which are to be matched. In this rule, only R will be pronounced. [2] The exclamation points indicate a nonalphabetic character which can be a space, punctuation mark, digit, or any other symbol except those which have been reserved as classification symbols (See Table 1-3). 1-14 [3] The equal sign acts to assign the phoneme code to the contents of the parentheses. [4] If all the conditions on the left are met, then a match is achieved and the contents of the parentheses will be pronounced as indicated by the phoneme code(s) to the right. The codes are set aside in a buffer (a temporary memory location) until the entire word or phrase has been converted. Other symbols used in rules are given in Table I -3a. The symbols help to generalize rules to encompass as many words with the same pronunciation pattern as possible. For example, a rule states that the letter A, preceded by any single consonant ( ^) and followed by the letter T, is to be pronounced as a short A. This r ule may match the word BAT, CAT, FAT, HAT, NAT, PAT, RAT, SAT, etc. It will also match BATTLE, CATTLE, RATTLE, BATCH, CATCH, HATCH and so forth. This single rule will insure that the letter A, in all these words and many more like them, will be pronounced correctly. How does the program know that B, C, F, etc. are consonants? The program is told. Each letter in the alphabet is classified as shown in Table I -3b. When Robert was typed, the program converted it to these symbols and set it aside for reference. Symbols for VOWELS Symbols for CONSONANTS # one or more vowels ^ one consonant + vowels E I Y . consonants BDGJLNNRVWZ : zero or more consonants Symbol for CHARACTER Symbol for ALL OTHERS use the character ? nonalphabetic Table I -3a Classification Symbols used in rule A B C D E F G H I J K L M # . ^ . + ^ . ^ + . ^ . . N O P Q R S T U V W X Y Z # ^ ^ . ^ ^ # . . ^ + . Table I -3b Classification Symbols: used in conversion 1-15 Rule number I does not apply to Robert, because the O in Robert fails to match the exclamation point on the right of R. / ROBERT / ! R ! If we had typed in "R" alone, a match would have been achieved. The text to speech program automatically inserts a space on either side of a word or phrase to be converted, to mark where it begins and ends. Therefore, the exclamation point on the left matches the space which precedes the name, Robert. A match is not achieved on the right, because the letter O is a vowel, not a nonalphabetic character. Compare the name, Robert, to the remaining rules in the R table. Each letter could be represented by its own character or a general symbol defining a vowel or a consonant. The letters in the name, Robert, may be represented by these symbols: R O B E R T . # . + . ^ ^ ^ # ^ Upon examination, we will see that a match will not occur until the last rule: (R) = I D. The last rule states that R in any environment, excluding the rules preceding it, will be pronounced as the R in the word, "rat." Rule number 16 only defines the pronunciation for the letter R, and not the sound of the letter O. Therefore, we must look to the next letter in sequence, the letter O, to locate the source of the mispronunciation. 1-16 We now proceed to the O table, type Control-Z to select a new character table and then O. If you page through the O table looking for a match, you should find a page of rules similar to Figure I -3. RULE TABLE &endash; O NUMBER OF RULES - 88 ADDRESS &endash; 34420 LENGTH - 849 BYTES 61 (O)^AGE=0E 62 (O)^A = 1163 63 (O)^E = 11A3 64 (O)^I# = 1163 65 (O)^ICE = 51A3 66 (O)^L# = 11 67 (O)^U = 11 68 (O)^U = l 1 69 (O)^Y = 1 l 70 (OUGHT) = 1028 ENTER COMMAND Figure I -3 The O Rule Table A quick glance over the table indicates that all of these rules, with the exception of number 70, define a sequence of letters in which O must be followed by one consonant. To the left of O no symbol or character exists. This means that the rule is not affected by what precedes O and this position is left unconstrained. So far any rule from 6 I to 69 could match Robert. Since it does not matter what precedes O and it is the only character within parentheses, we check for a consonant to the right and find B. To the right of B is the vowel E. Search the rules, starting with 61, for "E, ^+ or ^#. Rules 61 and 62 can be eliminated since A follows . Rule 63 matches the E. Since the rule boundary ends here, a match is made. / ROBERT / O^E This rule states that whenever an O is followed by any single consonant and the letter E, the O will be spoken as the O in "boat." If we try to change this particular rule so that Robert is pronounced correctly, we will find that this change affects other words, such as ROBE, ROPE, VOTE, and HOTEL. In order to avoid the possibility of such a side effect, let us create a rule just for Robert, since it appears to be an exception to this rule. 1-17 CREATE A NEW RULE In order to create a rule we first have to decide where to place it. the placement of a rule is very important, not only within a character table, but also among the rule tables. Always place your rule in the table represented by the first character to be pronounced (within the parentheses). Since the purpose of creating the rule is to insure that the name Robert will be pronounced correctly, we will enclose all the letters within the parentheses. This rule will be placed in the R Table. I, INSERT Type Control-Z ( ^Z) to select a new character table. Type R and the R rule table will appear on the screen. First, we must determine where this new rule should be inserted. The program will search through the tables sequentially in its conversion process, so it is important that all exceptions be listed before the general case. Otherwise, the search may end prematurely with a rule for a more general case. We could not, for example, place Robert at the end of the table after (R) = I D. If we tried to do so, our search would end with the above rule. This is a default rule which will match any word with an R since it does not specify what is to the left or right of R, the program would proceed to the next character search without ever reaching our Robert rule. In the event that you are working with a table of many exceptions, it is wise to alphabetize the exceptions without violating the exception to general case order. In this manner it is easier to locate and examine a particular rule. Since only the name Robert will match the rule we wish to create, it may be placed anywhere as long as it is before the last rule. For this example, let's place it in alphabetical order. Search through the table and find: 14 (RI)V = 1D07 15 TH(ROUGH) = 1D16 The Robert rule could be placed between these two rules. (Note: this is an example. These rules may not appear in this manner or consecutively.) Now 1-18 that we know where we would like to place the rule, let's write it. Type I for Insert. You will be prompted with the instruction. ENTER RULE TO INSERT AT PROMPT BELOW Type the first part of the rule as it appears below next to the > prompt. DO NOT PRESS RETURN! If you did press return, just press return again to display the Enter Command prompt, and begin once more by typing I for Insert. >!(ROBERT)! If while entering the rule, you make a typographical error, you may back space using the left arrow key and correct the error. However, if you type past the equal sign, you will not be permitted to back past it. If this happens, press the return. Press it again in response to the next prompt in order to cancel your entry. No rule will be inserted until you type in the location to insert. Now type the equal sign, DO NOT PRESS RETURN! The exclamation points in this rule represent spaces. In this way we may exclude the possibility of altering the pronunciation of the same sequence of letters which may happen to be contained in a larger word. If, for example, we write a rule for the name, ROB, and leave both sides of the word unspecified, it would affect the pronunciation of words such as stROBe. To avoid this, we may define a space to the left and right !(ROB)!, so that only these three letters would match this rule. Even ROBert would not match, since there are more letters to the right. Refer to the phoneme list on page A-1 and A-2 and look for the phoneme code for an /AH/ sound to pronounce Robert correctly. A portion of that table has been reproduced below. Sometimes there may be more than one possibility. The list of phonemes contains two /AH/ sounds, specified by the phoneme codes beginning with OE and OF. PHONEME LIST (PORTION) PHONEME CODE EXAMPLES 1 2 3 4 AE 0C 4C 8C CC dad AE1 0D 4D 8D CD laugh AH 0E 4E 8E CE top, about AH1 0F 4F 8F CF father AW l 0 50 90 D0 saw, caught 1-19 Notice, that for each sound in the phoneme list, there are four possible phoneme codes. As the value is changed from that of column 1 to columns 2, 3, or 4, the duration of the sound is shortened by approximately twenty-five percent, You may select the length which sounds best to you. If you wish to lengthen a sound, place two phoneme codes for the same sound together. Try the /AH1/ sound from the first column. Type the codes as indicated below, replacing only 11 and A3 with 0F for the 0 sound. The rule to be inserted should appear as follows: >!(ROBERT)! = I D0F645C68C0 All phoneme codes are comprised of two digits. Leading zeros are necessary. Should you make an error, you will be allowed to back space over the phoneme code. The back space works a little differently with phoneme codes. A single back space will move back and erase two digits rather than just one. This will prevent you from entering odd numbers of phoneme code digits. Please note that you will only be permitted numbers and the letters A-F on the right side of the equal sign. Now press return, if you have not already done so. The program will ask you where you would like to insert the rule: ENTER BEFORE RULE NUMBER: Insert the Robert rule before rule 15, TH(ROUGH) = 1D16. This new rule will now be part of the table. The Editor will return to the first page of the table after inserting the rule. Press the space bar and find the new rule 15. MAKE CORRECTIONS Now, let's hear it. Type T for the Test Mode. Type Robert after the question mark prompt and press return. How does it sound? It sounds much better, but let's try the other /AH/ sound, OE. Type N for New Entry and ^Z to return to the R table. E, EDIT To make changes to a rule, type E for edit. You will be prompted with the following: ENTER NUMBER OF RULE TO EDIT: Type in the number of the rule, 15. Press return, The Robert rule will now appear at the bottom of the screen above a prompt, so that you may refer 1-20 to it during the edit. The entire rule MUST be reentered, not just the corrections. Partially typed rules will replace the original rule, in the manner typed. The rule number is not necessary. As was the case for the Insert command, any typographical errors must be corrected before the equal sign is typed. You will not be permitted to back space beyond the equal sign. If you type the equal sign, complete the rule, press return and type E to begin again. The rule should be completed so that you will not have to reconstruct the entire rule from your memory. Typographical errors on the right hand side of the equal sign may also be corrected using the back space. Remember that in order to preserve the two digit code for a phoneme, a single back space will move back two digits, not one, and that you will only be allowed to type number s and the letters A-F. Retype the rule with 0E, in place of 0F. = !(ROBERT)! = ID0E645C68C0 Press return and the edited rule will replace the old one. The display will show the first ten rules. Press the space bar and make sure the rule was edited properly, Test it once more. It should sound better and more intelligible. Once you are satisfied that this new rule functions correctly, type U to Update the table, SAVE THE CHANGES U, UPDATE When you select a character table, this one table is copied into a "buffer" area. A buffer area is like a temporary work space or scratch pad. You may make additions, deletions and changes to the rules while they are in this area. Once you are satisfied that the character table is correct, the Update command replaces the old table with the new table. Eventually, all the character tables will be saved permanently to disk. The buffer area can only hold one character table at a time. if you select another character table, the current table in the buffer will be written over by the new table. Any changes made will be lost unless an update was performed. Therefore, if you would like to see another character table, and you are not sure if you updated the current table, type U to update. No harm will be done if you did update earlier or made no changes. 1-21 S, SAVE Once your work is updated, type Control-S to save the new table on your disk. The following prompt will appear at the bottom of the screen: ENTER FILE NAME: You have an option to save the corrections in the rule table you are currently working with or save them under another name and create a new rule table. If you would like to create a new table, enter any file name up to eight characters in length, beginning with a letter from A-Z and press return. If you want to save the corrections in the current rule table, type Control-N. No file name is necessary. The standard rule table, provided on the demonstration disk, is called MKB:RULE. After entering the name or N, the Rule Editor will respond with: PLEASE WAIT &endash; SAVING RULE TABLE FILES DELETE A RULE If you find that you have no use for a Robert rule, you may delete it. Any rule in any table may be deleted with the exception of the last rule. Each table must have at least one rule. D, DELETE Assuming that you are still in the R table, type D for Delete at the ENTER COMMAND prompt. The program will respond with: ENTER NUMBER OF RULE TO DELETE: Type 15 and press return. The screen will display the following prompt along with the rule you selected. The rule will appear near the bottom of the screen. CONTINUE WITH DELETION? (Y/N) Every attempt has been made to avoid mishaps, so you must confirm your intentions. if you respond Y, the deletion will proceed and all the rules following this rule will move up one position. The display will revert back to rules 1-10. Scroll through with the space bar to make sure the correct rule was deleted. Also check the last rule number to confirm the new rule count at the top of the screen display. If you do not want to delete this rule, respond N, and the ENTER COMMAND prompt will reappear. 1-22 OTHER USEFUL COMNANDS L, LOAD After you become more familiar with the Rule Editor, you may discover more interesting applications for the text to speech capabilities. For example, you may be interested in foreign languages and might like MOCKINGBOARD to speak, maybe German? Or perhaps, you are writing a program which could use some speech. The standard rule table may be too bulky to be used with your program. The solution is to create a new rule table for your application. You don't have to give this one up to get another. The demonstration disk contains a semi-blank rule table called MKB:EMPT. It contains the required one rule in each character table. If you do not wish to start from scratch, you may use the standard rule table (NKB:RULE), edit it and save it under another file name. This is done with the S, Save command. You may select a new rule table from any rule table. When you select the Rule Editor from the main menu, the standard rule table (MKB:RULE) will automatically be loaded. Select any character table and type Control-L (^L) at the ENTER COMMAND prompt. ENTER TABLE NAME Type the name of the rule table you wish to access. When a rule table is saved, three files are saved, the table itself, the total length of the table, and an index used to locate the character tables within the rule table. When a rule table is saved, .TABLE, .LENGTH, and .INDEX are appended to the file name automatically. The load command will automatically load the appropriate files, including the suffix. Therefore, when you load a table, you need only type its name PLEASE WAIT &endash; LOADING RULE TABLE FILES This prompt will appear, then the screen will clear and the initial select prompt will appear. You are all set to begin working with your new table. SELECT CHARACTER TABLE TO EDIT 1-22 P, PRINT The Rule Editor provides a simple to use print command to print out the individual character rule tables. Turn on your printer and type Control P. The following message will appear at the same time your printer begins to print. PLEASE WAIT &endash; PRINTING CHARACTER TABLE The print out will look similar to the screen display, except that all the rules will be printed out in succession. When it is completed, the ENTER COMMAND prompt will reappear. X, HELP Control-X (^X) will display all the commands for the Rule Editor. It will also display the commands for the Test Mode when you are in that mode. Q, QUIT When you are finished with the Rule Editor and wish to exit the program, type Z to select a new character rule table and type Control-Q (^Q). ONE FINAL INSTRUCTION It is important to note that your idea of the correct pronunciation may not be that of your neighbors. Some will prefer to say tomahto, others tomato. The Rule Editor allows you to change rules to suit your listening pleasure. It's yours! Go ahead and make MOCKINGBOARD say your own name.